#!/bin/bash

# 提示输入源数据库连接信息
read -p "请输入当前域名(127.0.0.1.nip.io):" src_domain
read -p "请输入目标域名(127.0.0.1.nip.io):" dest_domain
read -p "请输入源数据库的Host: " db_src_host
read -p "请输入源数据库的Port: " db_src_port
read -sp "请输入源数据库的密码: " db_src_password
echo

db_src_user="root"

# 读取数据库列表
db_list_file="mariadb_list"

# 检查数据库列表文件是否存在
if [ ! -f "$db_list_file" ]; then
  echo "数据库列表文件 $db_list_file 不存在"
  exit 1
fi

# 循环处理数据库列表中的每个数据库
while read db_name; do
  if [ -z "$db_name" ]; then
    continue
  fi
  
  # 导出数据库
  echo "正在导出数据库: $db_name"
  mysqldump -h "$db_src_host" -P "$db_src_port" -u "$db_src_user" -p"$db_src_password" --databases "$db_name" --add-drop-database --add-drop-table --skip-lock-tables > "$db_name.sql"
  if [ $? -ne 0 ]; then
    echo "导出数据库 $db_name 失败"
    continue
  fi

  # 替换SQL文件中的 当前域名 为 目标域名
  sed -i "s/$src_domain/$dest_domain/g" "$db_name.sql"

done < "$db_list_file"

# 打包压缩所有导出的SQL文件
echo "正在打包压缩SQL文件..."
tar czf exported_databases.tar.gz *.sql

# 检查压缩是否成功
if [ $? -ne 0 ]; then
  echo "压缩失败"
  exit 1
fi

# 删除原始的SQL文件
echo "删除原始的SQL文件..."
rm -f *.sql

echo "迁移操作完成，所有SQL文件已打包并删除"